package javaClassExercise.designPatterns.factoryMethod.generalFactoryMethod;

/**
 * Created by lomo on 2017/3/25.
 *
 * 【定义】普通工厂模式：就是建立一个工厂类，对实现了同一接口的一些类进行实例的创建。
 *
 *
 * 发送消息的工厂类, 这个工厂类的作用就是对实现Sender接口的2个类：MailSender类和SmsSender类 **进行实例(new）的创建** -- Sender类型的produce方法.
 *
 * 此实例中的普通工厂模式 即：只有一个工厂类【这个工厂类里对多个方法类进行了new操作】, 对各个类方法new时需要根据传入参数区分来创建对应的实例.
 *
 */

public class SendFactory {
    /*
    根据传入的type类型 返回不同类的实例，而这2个类都是实现了同一个接口(类)，所以produce方法类型即为自定义类型：Sender类型.
     */
    public Sender produce(String type) {
        if ("mail".equals(type)) {
            return new MailSender();
        } else if ("sms".equals(type)) {
            return new SmsSender();
        } else {
            System.out.println("请输入正确的type ！");
            return null;
        }
    }
}
